package com.job.blossom.work0711;

/**
 * @author ZJM
 * @version 1.0
 * @since 2022-07-11 19:36:15
 */
public class TestCup {
    public static void main(String[] args) {
        Cup cup = new Cup("ll", 9.9, 800D, "RED");

        System.out.println(cup);
//        一般的toString 方法 应该重写为简明易懂的描述对象特征的字符串

        Cup cup1 = new Cup("ll", 9.9, 800D, "RED");

        System.out.println(cup == cup1);
        System.out.println(cup.equals(cup1));//原始的是比较地址
//        一般的，equals 重写为 比较 对象间的所有特征
//        哈希协定：俩个对象equals方法结果为true 代表俩个对象 相等
//        相等的两个对象的hashcode 值也得相等

//        原本：hashcode() 和 equals（） 都是参照对象地址
//        一并重写为 参照 对象特征 来计算

//        四类八种包装类 和String 都已经重写了equals 和 hashcode



        /*
        ==  和 equals 的区别

        1:== 是 比较运算符
        比较基本类型，比较数据
        比较引用类型，比较地址
        2：equals 是 Object类的方法 任何类都可以重写此方法
        如果不重写  比较地址’
        如果重写 一般是比较对象的所有特征，也可以按需重写
        按照哈希协定，重写equals 也要重写 hashcode方法



         */
    }
}
